package engine.graphics.shader
{
	import away3d.core.base.*;
	import away3d.core.managers.*;
	import engine.graphics.away3d.*;
	import engine.graphics.renderable.*;
	import engine.graphics.resources.*;
	import engine.math.*;
	import flash.display3D.*;
	
	public class RxShaderFamilyBase
	{
		protected var m_enabled:Boolean;
		protected var m_shaderPermutations:Vector.<RxShaderProgram>;
		protected var m_renderableLists:Vector.<RxRenderableList>;
		protected var m_totalRenderables:uint;
		protected var m_worldMatrix:RxMatrix4x4;
		protected var m_color:RxVector4;
		protected var m_emissive:RxVector4;
		protected var m_baseTexture:RxGPUTexture2D;
		protected var m_nullTexture:RxGPUTexture2D;
		protected var m_vsConstBuffer:RxConstantBuffer;
		protected var m_fsConstBuffer:RxConstantBuffer;
		public static var s_disableRenderCalls:Boolean = false;
		
		public function RxShaderFamilyBase(param1:Context3D)
		{
			this.m_enabled = true;
			this.m_shaderPermutations = null;
			this.m_renderableLists = null;
			this.m_totalRenderables = 0;
			this.m_worldMatrix = null;
			this.m_color = new RxVector4(1, 1, 1, 1);
			this.m_emissive = new RxVector4(0, 0, 0, 0);
			this.m_baseTexture = null;
			this.m_nullTexture = null;
			var _loc_2:* = this.GetNumVSConstants();
			var _loc_3:* = this.GetNumFSConstants();
			this.m_vsConstBuffer = _loc_2 > 0 ? (new RxConstantBuffer(_loc_2)) : (null);
			this.m_fsConstBuffer = _loc_3 > 0 ? (new RxConstantBuffer(_loc_3)) : (null);
			this.LoadShaders(param1);
		}
		
		public function GetNumVSConstants() : uint
		{
			return 0;
		}
		
		public function GetNumFSConstants() : uint
		{
			return 0;
		}
		
		protected function LoadShaders(param1:Context3D) : void
		{
			return;
		}
	}
}